<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  /**
   * 首先new 一个Promise 对象  2各参数  ，分别都是函数
   * resolve 解决问题 相当于成功调用的函数
   * reject 拒绝  失败调用的函数
   *
   * 为了 模拟请求 用 setTimeout 函数
   *
   */
  // new Promise((resolve,reject)=>{
  //   //该请求 时间为 1秒
  //   setTimeout(()=>{
  //     //请求之后的业务逻辑转到 promise 的then 函数去执行，
  //     resolve("第1次业务处理结果")
  //   },1000)
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return new Promise((resolve,reject)=>{
  //     //第二次 请求
  //     setTimeout(()=>{
  //       resolve("第2次业务处理结果")
  //     },1000)
  //   })
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return new Promise((resolve,reject)=>{
  //     //第3次 请求
  //     setTimeout(()=>{
  //       resolve("第3次业务处理结果")
  //     },1000)
  //   })
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return new Promise((resolve,reject)=>{
  //     //第4次 请求
  //     setTimeout(()=>{
  //       resolve("第4次业务处理结果")
  //     },1000)
  //   })
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  // })


  //上面注释简写
  // new Promise((resolve,reject)=>{
  //   //该请求 时间为 1秒
  //   setTimeout(()=>{
  //     //请求之后的业务逻辑转到 promise 的then 函数去执行，
  //     resolve("第1次业务处理结果")
  //   },1000)
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return Promise.resolve("第2次处理")
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return Promise.resolve("第3次处理")
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  //   return Promise.resolve("第4次处理")
  // }).then(data=>{
  //   console.log("time:"+new Date()+",data:"+data);
  // })

  //上面注释的简写   then 里面 return 的值 自动回包装成  return Promise.resolve("第4次处理")
  new Promise((resolve,reject)=>{
    //该请求 时间为 1秒
    setTimeout(()=>{
      //请求之后的业务逻辑转到 promise 的then 函数去执行，
      resolve("第1次业务处理结果")
    },1000)
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    return "第2次处理--"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    return "第3次处理--"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    return "第4次处理--"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
  })


  new Promise((resolve,reject)=>{
    //该请求 时间为 1秒
    setTimeout(()=>{
      //请求之后的业务逻辑转到 promise 的then 函数去执行，
      resolve("第1次业务处理结果+++")
    },1000)
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    return "第2次处理++"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    throw "报错异常error"
    //return "第3次处理++"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
    return "第4次处理++"
  }).then(data=>{
    console.log("time:"+new Date()+",data:"+data);
  }).catch(error=>{   //链式调用异常捕获，有异常，抛出异常，后面的会终止
    console.log(error);
  })

</script>
</body>
</html>